import { user } from '@src/db/src/models/user/user'

/**
 * 自动注册用户：昵称为未命名+序号，昵称不重复
 * @param userId 用户唯一标识（qq_number）
 * @returns Promise<boolean> 是否新建了用户
 */

export async function autoRegisterUser(userId: string): Promise<boolean> {
  // 检查用户是否已注册
  let exist = await user.findOne({ where: { qid: userId } })
  if (exist) {
    return false
  }

  // 获取当前最大uid
  const lastUser = await user.findOne({
    order: [['uid', 'DESC']]
  })
  const lastUserUid = (lastUser as any)?.uid
  const nextUid = lastUserUid ? Number(lastUserUid) + 1 : 10000001

  // 生成唯一昵称
  let regName = `未命名${nextUid}`
  // 检查昵称是否已存在，若存在则递增序号直到唯一
  while (await user.findOne({ where: { name: regName } })) {
    regName = `未命名${Number(regName.replace('未命名', '')) + 1}`
  }

  // 创建新用户
  await user.create({
    qid: userId,
    name: regName,
    register_time: new Date(),
    status: 0,
    uid: nextUid,
    schedule: '初始0'
  })

  return true
}
